// 1. 引入异步对象
import request from '@/utils/request'
// 2. 引入接口约束
// 3. 使用枚举来保存接口
enum Api {
  // 1. 添加skuInfo
  saveSkuInfoApi = '/admin/product/saveSkuInfo',
  // 2. 根据spuId来查询对应的skuList
  getSkuListApi = '/admin/product/findBySpuId',
  // 3. 获取所有的skuList数据
  getAllSkuListApi = '/admin/product/list',
  // 4. skuInfo上架
  skuInfoOnSaleApi = '/admin/product/onSale',
  // 5. skuInfo下架
  skuInfoCacelSaleApi = '/admin/product/cancelSale',
  // 6. 删除skuInfo
  deleteSkuInfoApi = '/admin/product/deleteSku',
  // 7. 根据skuId查询要显示的一条skuInfo数据
  // /admin/product/getSkuInfo/{skuId}
  getSkuInfoByIdApi = '/admin/product/getSkuById'
}
// 4. 书写接口函数
/**
 * 4.1 添加skuInfo
 * @param skuInfo skuInfo对象
 * @returns 
 */
export const reqSaveSkuInfo = (skuInfo) => {
  return request.post(Api.saveSkuInfoApi, skuInfo)
}

/**
 * 4.2 根据spuId 获取对应的sku列表数据
 * @param spuId 
 * @returns 
 */
export const reqGetSkuListData = (spuId: number) => {
  return request.get(Api.getSkuListApi + `/${spuId}`)
}
/**
 * 4.3 根据分页来获取对应的skuList数据列表
 * @param page 
 * @param limit 
 * @returns 
 */
export const reqGetAllSkuListData = (page: number, limit: number) => {
  return request.get(Api.getAllSkuListApi + `/${page}/${limit}`)
}

// 4.4 商品的下架
export const reqCancelSale = (skuId: number) => {
  return request.get(Api.skuInfoCacelSaleApi + `/${skuId}`)
}

// 4.5 商品的上架
export const reqOnSale = (skuId: number) => {
  return request.get(Api.skuInfoOnSaleApi + `/${skuId}`)
}

// 4.6 删除skuInfo
export const reqDeleteSkuInfo = (skuId: number) => {
  return request.delete(Api.deleteSkuInfoApi + `/${skuId}`)
}

// 4.7 根据skuId 查询一条skuInfo的数据
export const reqGetOneSkuInfo = (skuId: number) => {
  return request.get(Api.getSkuInfoByIdApi + `/${skuId}`)
}